package fachada;

import java.util.List;

import dao.DaoAposta;
import dao.DaoApostador;
import dao.DaoJogo;
import dao.DaoPlacar;
import dao.DaoPontos;
import dao.DaoRodada;
import dao.DaoTime;

import interfaces.IAposta;
import interfaces.IApostador;
import interfaces.IFachada;
import interfaces.IJogo;
import interfaces.IPlacar;
import interfaces.IPontos;
import interfaces.IRodada;
import interfaces.ITime;

import model.Aposta;
import model.Apostador;
import model.Jogo;
import model.Placar;
import model.Pontos;
import model.Rodada;
import model.Time;


public class Fachada implements IFachada{
	
	private IAposta    daoAposta    = new DaoAposta();
	private IApostador daoApostador = new DaoApostador();
	private IJogo      daoJogo      = new DaoJogo();
	private IPlacar    daoPlacar    = new DaoPlacar();
	private IPontos    daoPontos    = new DaoPontos();
	private IRodada    daoRodada    = new DaoRodada();
	private ITime      daoTime      = new DaoTime();

	
	@Override
	public Aposta salvarAposta(Aposta aposta) {
		return daoAposta.salvar(aposta);
	}

	@Override
	public Aposta atualizarAposta(Aposta aposta) {
		return daoAposta.atualizar(aposta);
	}

	@Override
	public Aposta removerAposta(Aposta aposta) {
		return daoAposta.remover(aposta);
	}

	@Override
	public List<Aposta> listarApostas() {
		return daoAposta.listar();
	}

	@Override
	public Aposta getApostaPorId(Long id) {
		return daoAposta.getApostaPorId(id);
	}
	
	@Override
	public Apostador salvarApostador(Apostador apostador) {
		return daoApostador.salvar(apostador);
	}

	@Override
	public Apostador atualizarApostador(Apostador apostador) {
		return daoApostador.atualizar(apostador);
	}

	@Override
	public Apostador removerApostador(Apostador apostador) {
		return daoApostador.remover(apostador);
	}

	@Override
	public List<Apostador> listarApostadores() {
		return daoApostador.listar();
	}

	@Override
	public Apostador getApostadorPorId(Long id) {
		return daoApostador.getPorId(id);
	}

	@Override
	public Apostador getApostadorPorCpf(String cpf) {
		return daoApostador.getPorCpf(cpf);
	}
	
	
	
	@Override
	public Jogo salvarJogo(Jogo jogos) {
		return daoJogo.salvar (jogos);
	}

	@Override
	public Jogo atualizarJogo(Jogo jogos) {
		return daoJogo.atualizar(jogos);
	}

	@Override
	public Jogo removerJogo(Jogo jogos) {
		return daoJogo.remover(jogos);
	}

	@Override
	public List<Jogo> listarJogos() {
		return daoJogo.listar();
	}

	@Override
	public Jogo getJogoPorId (Long id) {
		return daoJogo.getJogoPorId(id);
	}

	@Override
	public Jogo getJogoPorPlacar(Placar placar) {
		return daoJogo.getJogoPorPlacar(placar);
	}
	
	@Override
	public Pontos salvarPontos(Pontos pontos) {
		return daoPontos.salvar(pontos);
	}

	@Override
	public Pontos atualizarPontos(Pontos pontos) {
		return daoPontos.atualizar(pontos);
	}

	@Override
	public Pontos removerPontos(Pontos pontos) {
		return daoPontos.remover(pontos);
	}

	@Override
	public List<Pontos> listaPontos() {
		return daoPontos.listar();
	}

	@Override
	public Pontos getPontosPorId (Long id) {
		return daoPontos.getPontosPorId(id);
	}

	@Override
	public Placar salvarPlacar(Placar placar) {
		return daoPlacar.salvar(placar);
	}

	@Override
	public Placar atualizarPlacar(Placar placar) {
		return daoPlacar.atualizar(placar);
	}

	@Override
	public Placar removerplacar(Placar placar) {
		return daoPlacar.remover(placar);
	}

	@Override
	public List<Placar> listaPlacar() {
		return daoPlacar.listar();
	}

	@Override
	public Placar getPlacarPorGol(String gol) {
		return daoPlacar.getPlacarPorGol(gol);
	}

		@Override
	public Rodada salvarRodada(Rodada rodada) {
		return daoRodada.salvar(rodada);
	}

	@Override
	public Rodada atualizarRodada(Rodada rodada) {
		return daoRodada.atualizar(rodada);
	}

	@Override
	public Rodada removerRodada(Rodada rodada) {
		return daoRodada.remover(rodada);
	}

	@Override
	public List<Rodada> listarRodadas() {
		return daoRodada.listar();
		
	}
	
	public Rodada getPorId (Long id){
		return daoRodada.getPorId(id);	
	}

	@Override
	public Rodada getRodadas(String rodadas) {
		return daoRodada.getRodadas(rodadas);
	}
	
	@Override
	public Time salvarTime(Time time) {
		return daoTime.salvar(time);
	}

	@Override
	public Time atualizarTime(Time time) {
		return daoTime.atualizar(time);
	}

	@Override
	public Time removerTime(Time time) {
		return daoTime.remover(time);
	}

	@Override
	public List<Time> listarTimes() {
		return daoTime.listar();
	}

	@Override
	public Time getPorTime(Long id) {
		return daoTime.getPorId(id);
	}

	@Override
	public Time getTimePorNome(String nome) {
		return daoTime.getTimePorNome(nome);
	}
	
	public Time getTimePorPlacar(Placar placar){
		return daoTime.getTimePorPlacar(placar);
	}



		
}	
